5e622171f2df29013e77cdd89feb12613a8b31d2,src/main/java/org/roaringbitmap/RunContainer.java,RunContainer,and,#BitmapContainer#,333

Before Change


      Util.resetBitmapRange(answer.bitmap, start, end); // had been x.bitmap
      start = end + Util.toIntUnsigned(this.getLength(rlepos)) + 1;
    }
    Util.resetBitmapRange(answer.bitmap, start, Util.maxLowBitAsInteger() + 1); // had been x.bitmap
    answer.computeCardinality();
    if (answer.getCardinality() > ArrayContainer.DEFAULT_MAX_SIZE) {
      return answer;

After Change


    int start = 0;
    for (int rlepos = 0; rlepos < this.nbrruns; ++rlepos) {
      int end = Util.toIntUnsigned(this.getValue(rlepos));
      int prevOnes = Util.cardinalityInBitmapRange(answer.bitmap, start, end);
      Util.resetBitmapRange(answer.bitmap, start, end); // had been x.bitmap
      answer.updateCardinality(prevOnes, 0);
      start = end + Util.toIntUnsigned(this.getLength(rlepos)) + 1;
    }
    int ones = Util.cardinalityInBitmapRange(answer.bitmap, start, BitmapContainer.MAX_CAPACITY);
    Util.resetBitmapRange(answer.bitmap, start, BitmapContainer.MAX_CAPACITY); // had been x.bitmap
    answer.updateCardinality(ones, 0);
    if (answer.getCardinality() > ArrayContainer.DEFAULT_MAX_SIZE) {
      return answer;